import {
    IFCACTUATOR,
    IFCAIRTERMINAL,
    IFCAIRTERMINALBOX,
    IFCAIRTOAIRHEATRECOVERY,
    IFCALARM,
    IFCAUDIOVISUALAPPLIANCE,
    IFCBEAM,
    IFCBEAMSTANDARDCASE,
    IFCBOILER,
    IFCBUILDING,
    IFCBUILDINGELEMENTPART,
    IFCBUILDINGELEMENTPROXY,
    IFCBUILDINGSTOREY,
    IFCBURNER,
    IFCCABLECARRIERFITTING,
    IFCCABLECARRIERSEGMENT,
    IFCCABLEFITTING,
    IFCCABLESEGMENT,
    IFCCHILLER,
    IFCCHIMNEY,
    IFCCIVILELEMENT,
    IFCCOIL,
    IFCCOLUMN,
    IFCCOLUMNSTANDARDCASE,
    IFCCOMMUNICATIONSAPPLIANCE,
    IFCCOMPRESSOR,
    IFCCONDENSER,
    IFCCONTROLLER,
    IFCCOOLEDBEAM,
    IFCCOOLINGTOWER,
    IFCCOVERING,
    IFCCURTAINWALL,
    IFCDAMPER,
    IFCDISCRETEACCESSORY,
    IFCDISTRIBUTIONCHAMBERELEMENT,
    IFCDISTRIBUTIONCONTROLELEMENT,
    IFCDISTRIBUTIONELEMENT,
    IFCDISTRIBUTIONFLOWELEMENT,
    IFCDOOR,
    IFCDOORSTANDARDCASE,
    IFCDUCTFITTING,
    IFCDUCTSEGMENT,
    IFCDUCTSILENCER,
    IFCELECTRICAPPLIANCE,
    IFCELECTRICDISTRIBUTIONBOARD,
    IFCELECTRICFLOWSTORAGEDEVICE,
    IFCELECTRICGENERATOR,
    IFCELECTRICMOTOR,
    IFCELECTRICTIMECONTROL,
    IFCELEMENTASSEMBLY,
    IFCENERGYCONVERSIONDEVICE,
    IFCENGINE,
    IFCEVAPORATIVECOOLER,
    IFCEVAPORATOR,
    IFCFAN,
    IFCFASTENER,
    IFCFILTER,
    IFCFIRESUPPRESSIONTERMINAL,
    IFCFLOWCONTROLLER,
    IFCFLOWFITTING,
    IFCFLOWINSTRUMENT,
    IFCFLOWMETER,
    IFCFLOWMOVINGDEVICE,
    IFCFLOWSEGMENT,
    IFCFLOWSTORAGEDEVICE,
    IFCFLOWTERMINAL,
    IFCFLOWTREATMENTDEVICE,
    IFCFOOTING,
    IFCFURNISHINGELEMENT,
    IFCFURNITURE,
    IFCGEOGRAPHICELEMENT,
    IFCHEATEXCHANGER,
    IFCHUMIDIFIER,
    IFCINTERCEPTOR,
    IFCJUNCTIONBOX,
    IFCLAMP,
    IFCLIGHTFIXTURE,
    IFCMECHANICALFASTENER,
    IFCMEDICALDEVICE,
    IFCMEMBER,
    IFCMEMBERSTANDARDCASE,
    IFCMOTORCONNECTION,
    IFCOPENINGELEMENT,
    IFCOPENINGSTANDARDCASE,
    IFCOUTLET,
    IFCPILE,
    IFCPIPEFITTING,
    IFCPIPESEGMENT,
    IFCPLATE,
    IFCPLATESTANDARDCASE,
    IFCPROJECT,
    IFCPROJECTIONELEMENT,
    IFCPROTECTIVEDEVICE,
    IFCPROTECTIVEDEVICETRIPPINGUNIT,
    IFCPUMP,
    IFCRAILING,
    IFCRAMP,
    IFCRAMPFLIGHT,
    IFCREINFORCINGBAR,
    IFCREINFORCINGMESH,
    IFCROOF,
    IFCSANITARYTERMINAL,
    IFCSENSOR,
    IFCSHADINGDEVICE,
    IFCSITE,
    IFCSLAB,
    IFCSLABELEMENTEDCASE,
    IFCSLABSTANDARDCASE,
    IFCSOLARDEVICE,
    IFCSPACE,
    IFCSPACEHEATER,
    IFCSTACKTERMINAL,
    IFCSTAIR,
    IFCSTAIRFLIGHT,
    IFCSURFACEFEATURE,
    IFCSWITCHINGDEVICE,
    IFCSYSTEMFURNITUREELEMENT,
    IFCTANK,
    IFCTENDON,
    IFCTENDONANCHOR,
    IFCTRANSFORMER,
    IFCTRANSPORTELEMENT,
    IFCTUBEBUNDLE,
    IFCUNITARYCONTROLELEMENT,
    IFCUNITARYEQUIPMENT,
    IFCVALVE,
    IFCVIBRATIONISOLATOR,
    IFCVIRTUALELEMENT,
    IFCVOIDINGFEATURE,
    IFCWALL,
    IFCWALLELEMENTEDCASE,
    IFCWALLSTANDARDCASE,
    IFCWASTETERMINAL,
    IFCWINDOW,
    IFCWINDOWSTANDARDCASE
} from "web-ifc";
import {IfcElements} from "../../../src/IFC/components/IFCElementsMap";


describe("IfcElements", () => {

    test('test mapping', () => {
        expect(IfcElements[IFCPROJECT]).toBe('IFCPROJECT');
        expect(IfcElements[IFCSITE]).toBe('IFCSITE');
        expect(IfcElements[IFCBUILDING]).toBe('IFCBUILDING');
        expect(IfcElements[IFCBUILDINGSTOREY]).toBe('IFCBUILDINGSTOREY');
        expect(IfcElements[IFCSPACE]).toBe('IFCSPACE');
        expect(IfcElements[IFCCONTROLLER]).toBe('IFCCONTROLLER');
        expect(IfcElements[IFCBOILER]).toBe('IFCBOILER');
        expect(IfcElements[IFCLAMP]).toBe('IFCLAMP');
        expect(IfcElements[IFCPUMP]).toBe('IFCPUMP');
        expect(IfcElements[IFCAIRTERMINALBOX]).toBe('IFCAIRTERMINALBOX');
        expect(IfcElements[IFCFLOWINSTRUMENT]).toBe('IFCFLOWINSTRUMENT');
        expect(IfcElements[IFCFURNISHINGELEMENT]).toBe('IFCFURNISHINGELEMENT');
        expect(IfcElements[IFCELECTRICGENERATOR]).toBe('IFCELECTRICGENERATOR');
        expect(IfcElements[IFCAUDIOVISUALAPPLIANCE]).toBe('IFCAUDIOVISUALAPPLIANCE');
        expect(IfcElements[IFCPIPEFITTING]).toBe('IFCPIPEFITTING');
        expect(IfcElements[IFCSTAIR]).toBe('IFCSTAIR');
        expect(IfcElements[IFCDUCTFITTING]).toBe('IFCDUCTFITTING');
        expect(IfcElements[IFCMECHANICALFASTENER]).toBe('IFCMECHANICALFASTENER');
        expect(IfcElements[IFCDOOR]).toBe('IFCDOOR');
        expect(IfcElements[IFCELECTRICMOTOR]).toBe('IFCELECTRICMOTOR');
        expect(IfcElements[IFCSYSTEMFURNITUREELEMENT]).toBe('IFCSYSTEMFURNITUREELEMENT');
        expect(IfcElements[IFCEVAPORATOR]).toBe('IFCEVAPORATOR');
        expect(IfcElements[IFCWINDOWSTANDARDCASE]).toBe('IFCWINDOWSTANDARDCASE');
        expect(IfcElements[IFCLIGHTFIXTURE]).toBe('IFCLIGHTFIXTURE');
        expect(IfcElements[IFCUNITARYCONTROLELEMENT]).toBe('IFCUNITARYCONTROLELEMENT');
        expect(IfcElements[IFCCABLECARRIERFITTING]).toBe('IFCCABLECARRIERFITTING');
        expect(IfcElements[IFCCOIL]).toBe('IFCCOIL');
        expect(IfcElements[IFCFASTENER]).toBe('IFCFASTENER');
        expect(IfcElements[IFCFLOWSTORAGEDEVICE]).toBe('IFCFLOWSTORAGEDEVICE');
        expect(IfcElements[IFCPROTECTIVEDEVICE]).toBe('IFCPROTECTIVEDEVICE');
        expect(IfcElements[IFCBEAM]).toBe('IFCBEAM');
        expect(IfcElements[IFCTANK]).toBe('IFCTANK');
        expect(IfcElements[IFCFILTER]).toBe('IFCFILTER');
        expect(IfcElements[IFCCOLUMN]).toBe('IFCCOLUMN');
        expect(IfcElements[IFCELECTRICDISTRIBUTIONBOARD]).toBe('IFCELECTRICDISTRIBUTIONBOARD');
        expect(IfcElements[IFCFOOTING]).toBe('IFCFOOTING');
        expect(IfcElements[IFCCOLUMNSTANDARDCASE]).toBe('IFCCOLUMNSTANDARDCASE');
        expect(IfcElements[IFCVOIDINGFEATURE]).toBe('IFCVOIDINGFEATURE');
        expect(IfcElements[IFCREINFORCINGBAR]).toBe('IFCREINFORCINGBAR');
        expect(IfcElements[IFCFLOWSEGMENT]).toBe('IFCFLOWSEGMENT');
        expect(IfcElements[IFCELECTRICTIMECONTROL]).toBe('IFCELECTRICTIMECONTROL');
        expect(IfcElements[IFCCABLEFITTING]).toBe('IFCCABLEFITTING');
        expect(IfcElements[IFCDISTRIBUTIONCHAMBERELEMENT]).toBe('IFCDISTRIBUTIONCHAMBERELEMENT');
        expect(IfcElements[IFCDISTRIBUTIONCONTROLELEMENT]).toBe('IFCDISTRIBUTIONCONTROLELEMENT');
        expect(IfcElements[IFCMEMBER]).toBe('IFCMEMBER');
        expect(IfcElements[IFCBUILDINGELEMENTPROXY]).toBe('IFCBUILDINGELEMENTPROXY');
        expect(IfcElements[IFCPLATESTANDARDCASE]).toBe('IFCPLATESTANDARDCASE');
        expect(IfcElements[IFCSWITCHINGDEVICE]).toBe('IFCSWITCHINGDEVICE');
        expect(IfcElements[IFCSHADINGDEVICE]).toBe('IFCSHADINGDEVICE');
        expect(IfcElements[IFCDISCRETEACCESSORY]).toBe('IFCDISCRETEACCESSORY');
        expect(IfcElements[IFCDUCTSILENCER]).toBe('IFCDUCTSILENCER');
        expect(IfcElements[IFCSTACKTERMINAL]).toBe('IFCSTACKTERMINAL');
        expect(IfcElements[IFCFIRESUPPRESSIONTERMINAL]).toBe('IFCFIRESUPPRESSIONTERMINAL');
        expect(IfcElements[IFCMEDICALDEVICE]).toBe('IFCMEDICALDEVICE');
        expect(IfcElements[IFCFURNITURE]).toBe('IFCFURNITURE');
        expect(IfcElements[IFCSLAB]).toBe('IFCSLAB');
        expect(IfcElements[IFCTRANSPORTELEMENT]).toBe('IFCTRANSPORTELEMENT');
        expect(IfcElements[IFCAIRTERMINAL]).toBe('IFCAIRTERMINAL');
        expect(IfcElements[IFCENERGYCONVERSIONDEVICE]).toBe('IFCENERGYCONVERSIONDEVICE');
        expect(IfcElements[IFCCIVILELEMENT]).toBe('IFCCIVILELEMENT');
        expect(IfcElements[IFCPILE]).toBe('IFCPILE');
        expect(IfcElements[IFCELECTRICAPPLIANCE]).toBe('IFCELECTRICAPPLIANCE');
        expect(IfcElements[IFCMEMBERSTANDARDCASE]).toBe('IFCMEMBERSTANDARDCASE');
        expect(IfcElements[IFCDISTRIBUTIONELEMENT]).toBe('IFCDISTRIBUTIONELEMENT');
        expect(IfcElements[IFCCOVERING]).toBe('IFCCOVERING');
        expect(IfcElements[IFCSPACEHEATER]).toBe('IFCSPACEHEATER');
        expect(IfcElements[IFCROOF]).toBe('IFCROOF');
        expect(IfcElements[IFCAIRTOAIRHEATRECOVERY]).toBe('IFCAIRTOAIRHEATRECOVERY');
        expect(IfcElements[IFCFLOWCONTROLLER]).toBe('IFCFLOWCONTROLLER');
        expect(IfcElements[IFCHUMIDIFIER]).toBe('IFCHUMIDIFIER');
        expect(IfcElements[IFCJUNCTIONBOX]).toBe('IFCJUNCTIONBOX');
        expect(IfcElements[IFCFLOWMETER]).toBe('IFCFLOWMETER');
        expect(IfcElements[IFCFLOWTERMINAL]).toBe('IFCFLOWTERMINAL');
        expect(IfcElements[IFCRAILING]).toBe('IFCRAILING');
        expect(IfcElements[IFCCONDENSER]).toBe('IFCCONDENSER');
        expect(IfcElements[IFCPROTECTIVEDEVICETRIPPINGUNIT]).toBe('IFCPROTECTIVEDEVICETRIPPINGUNIT');
        expect(IfcElements[IFCREINFORCINGMESH]).toBe('IFCREINFORCINGMESH');
        expect(IfcElements[IFCTENDONANCHOR]).toBe('IFCTENDONANCHOR');
        expect(IfcElements[IFCVIBRATIONISOLATOR]).toBe('IFCVIBRATIONISOLATOR');
        expect(IfcElements[IFCWALL]).toBe('IFCWALL');
        expect(IfcElements[IFCMOTORCONNECTION]).toBe('IFCMOTORCONNECTION');
        expect(IfcElements[IFCVIRTUALELEMENT]).toBe('IFCVIRTUALELEMENT');
        expect(IfcElements[IFCENGINE]).toBe('IFCENGINE');
        expect(IfcElements[IFCBEAMSTANDARDCASE]).toBe('IFCBEAMSTANDARDCASE');
        expect(IfcElements[IFCBURNER]).toBe('IFCBURNER');
        expect(IfcElements[IFCBUILDINGELEMENTPART]).toBe('IFCBUILDINGELEMENTPART');
        expect(IfcElements[IFCRAMP]).toBe('IFCRAMP');
        expect(IfcElements[IFCTUBEBUNDLE]).toBe('IFCTUBEBUNDLE');
        expect(IfcElements[IFCSLABSTANDARDCASE]).toBe('IFCSLABSTANDARDCASE');
        expect(IfcElements[IFCDISTRIBUTIONFLOWELEMENT]).toBe('IFCDISTRIBUTIONFLOWELEMENT');
        expect(IfcElements[IFCSANITARYTERMINAL]).toBe('IFCSANITARYTERMINAL');
        expect(IfcElements[IFCOPENINGSTANDARDCASE]).toBe('IFCOPENINGSTANDARDCASE');
        expect(IfcElements[IFCALARM]).toBe('IFCALARM');
        expect(IfcElements[IFCSURFACEFEATURE]).toBe('IFCSURFACEFEATURE');
        expect(IfcElements[IFCSLABELEMENTEDCASE]).toBe('IFCSLABELEMENTEDCASE');
        expect(IfcElements[IFCFLOWMOVINGDEVICE]).toBe('IFCFLOWMOVINGDEVICE');
        expect(IfcElements[IFCPLATE]).toBe('IFCPLATE');
        expect(IfcElements[IFCCOMMUNICATIONSAPPLIANCE]).toBe('IFCCOMMUNICATIONSAPPLIANCE');
        expect(IfcElements[IFCDOORSTANDARDCASE]).toBe('IFCDOORSTANDARDCASE');
        expect(IfcElements[IFCRAMPFLIGHT]).toBe('IFCRAMPFLIGHT');
        expect(IfcElements[IFCCHIMNEY]).toBe('IFCCHIMNEY');
        expect(IfcElements[IFCWINDOW]).toBe('IFCWINDOW');
        expect(IfcElements[IFCELECTRICFLOWSTORAGEDEVICE]).toBe('IFCELECTRICFLOWSTORAGEDEVICE');
        expect(IfcElements[IFCHEATEXCHANGER]).toBe('IFCHEATEXCHANGER');
        expect(IfcElements[IFCFAN]).toBe('IFCFAN');
        expect(IfcElements[IFCSOLARDEVICE]).toBe('IFCSOLARDEVICE');
        expect(IfcElements[IFCGEOGRAPHICELEMENT]).toBe('IFCGEOGRAPHICELEMENT');
        expect(IfcElements[IFCCURTAINWALL]).toBe('IFCCURTAINWALL');
        expect(IfcElements[IFCFLOWTREATMENTDEVICE]).toBe('IFCFLOWTREATMENTDEVICE');
        expect(IfcElements[IFCWALLSTANDARDCASE]).toBe('IFCWALLSTANDARDCASE');
        expect(IfcElements[IFCDUCTSEGMENT]).toBe('IFCDUCTSEGMENT');
        expect(IfcElements[IFCCOMPRESSOR]).toBe('IFCCOMPRESSOR');
        expect(IfcElements[IFCOPENINGELEMENT]).toBe('IFCOPENINGELEMENT');
        expect(IfcElements[IFCPIPESEGMENT]).toBe('IFCPIPESEGMENT');
        expect(IfcElements[IFCCOOLINGTOWER]).toBe('IFCCOOLINGTOWER');
        expect(IfcElements[IFCPROJECTIONELEMENT]).toBe('IFCPROJECTIONELEMENT');
        expect(IfcElements[IFCOUTLET]).toBe('IFCOUTLET');
        expect(IfcElements[IFCEVAPORATIVECOOLER]).toBe('IFCEVAPORATIVECOOLER');
        expect(IfcElements[IFCCABLECARRIERSEGMENT]).toBe('IFCCABLECARRIERSEGMENT');
        expect(IfcElements[IFCTENDON]).toBe('IFCTENDON');
        expect(IfcElements[IFCTRANSFORMER]).toBe('IFCTRANSFORMER');
        expect(IfcElements[IFCCHILLER]).toBe('IFCCHILLER');
        expect(IfcElements[IFCDAMPER]).toBe('IFCDAMPER');
        expect(IfcElements[IFCSENSOR]).toBe('IFCSENSOR');
        expect(IfcElements[IFCELEMENTASSEMBLY]).toBe('IFCELEMENTASSEMBLY');
        expect(IfcElements[IFCCOOLEDBEAM]).toBe('IFCCOOLEDBEAM');
        expect(IfcElements[IFCWALLELEMENTEDCASE]).toBe('IFCWALLELEMENTEDCASE');
        expect(IfcElements[IFCINTERCEPTOR]).toBe('IFCINTERCEPTOR');
        expect(IfcElements[IFCVALVE]).toBe('IFCVALVE');
        expect(IfcElements[IFCCABLESEGMENT]).toBe('IFCCABLESEGMENT');
        expect(IfcElements[IFCWASTETERMINAL]).toBe('IFCWASTETERMINAL');
        expect(IfcElements[IFCSTAIRFLIGHT]).toBe('IFCSTAIRFLIGHT');
        expect(IfcElements[IFCFLOWFITTING]).toBe('IFCFLOWFITTING');
        expect(IfcElements[IFCACTUATOR]).toBe('IFCACTUATOR');
        expect(IfcElements[IFCUNITARYEQUIPMENT]).toBe('IFCUNITARYEQUIPMENT');
    });

});
